package com.hnd.springframework;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * bean 工厂 负责保存bean实例
 * 主要的工作的是
 * bean的注册
 * bean的获取
 *
 * @author hnd
 */
public class BeanFactory {
    /**
     * bean 的注册表
     */
    private Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>();

    /**
     * bean 的注册
     *
     * @param beanName
     * @param bean
     */
    public void registerBeanDefinition(String beanName, BeanDefinition bean) {
        beanDefinitionMap.put(beanName, bean);
    }

    /**
     * 获取bean实例
     *
     * @param beanName
     * @return
     */
    public Object getBean(String beanName) {
        return beanDefinitionMap.get(beanName).getBean();
    }

}
